import Vue from 'vue'

import 'normalize.css/normalize.css' // A modern alternative to CSS resets

import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
import locale from 'element-ui/lib/locale/lang/en' // lang i18n

import '@/styles/index.scss' // global css

import App from './App'
import store from './store'
import router from './router'
import i18n from './lang'

import '@/icons' // icon
import '@/permission' // permission control

/**
 * If you don't want to use mock-server
 * you want to use MockJs for mock api
 * you can execute: mockXHR()
 *
 * Currently MockJs will be used in the production environment,
 * please remove it before going online ! ! !
 */
// if (process.env.NODE_ENV === 'production') {
//   const { mockXHR } = require('../mock')
//   mockXHR()
// }

// 注册toolPage组件
// import toolPage from '@/components/toolPage';
// Vue.component('toolPage',toolPage)
// import pluginCom from '@/components';
// Vue.use(pluginCom)
import '@/components' //整体注册组件


// set ElementUI lang to EN
Vue.use(ElementUI, { locale })
// 如果想要中文版 element-ui，按如下方式声明
// Vue.use(ElementUI)

//Vue.directive(自定义指令的名字,对象)
//Vue.filter(自定义过滤的名字,函数)
Vue.directive('errorImg',{
// 自定义指令的钩子函数有哪些 一共5个
bind:function(){},
// 等待所有的dom元素全部加载完毕之后在执行 类似mounted
inserted:function(el,obj){
  console.log(el.scroll,444);
  // dom元素加载过程中加载资源失败的时候就会触发
  el.onerror = function (){
el.src=obj.value
  }
}
})
// 1-Vue.directive(自定义指令的名字,对象)
// 2-inserted：等待dom元素全部插入到dom树里面之后在执行
// 2-1：可以获取dom元素，可以给dom元素绑定一个资源加载失败的事件
// 2-2：重新给dom设置他的src
// 2-3 将设置的src值写活，
// 需要在navBar组件中使用指令的时候传值 v-errorImg="defaultImg"
// 2-4inserted猴子函数需要获取传过来的值，获取之后在赋值给dom元素的src
import plugin from '@/directives'
Vue.use(plugin)

import mixs from '@/mixin/index.js'
Vue.mixin(mixs)

Vue.config.productionTip = false

new Vue({
  el: '#app',
  router,
  store,
  i18n,
  render: h => h(App)
})
